define([
	"UtilDir/util",
	"UtilDir/tool",
    "UtilDir/org/selectOrg",
    "UtilDir/searchBlock",
    "static/app/hddc/hddccjcommon/hddccjCommon",
	"Date","DateCN", "css!DateCss",
	"EasyUI","EasyUI-lang"
    ],function(Util, Tool, SelectOrg, SearchBlock,HddccjCommon){

    var sysPath =  getServer() + "/static/app/hddc/hddcA1LiteratureDocumentTable";

    var hddcA1LiteraturedocumenttableFormHtml = sysPath + "/views/hddcA1LiteraturedocumenttableForm.html";
	var getHddcA1LiteraturedocumenttableController = function(){
		return getServer() + "/hddc/hddcA1Literaturedocumenttables";
	};

	/**
	 * 页面初始化
	 */
	var init = function(){
        initSearchBlock();
        queryBtnBind();
        initcreateProvince();
        initQualityinspectionStatusSelect();
        HddccjCommon.initProjectSelect("projectNameCondition"); //初始化查询的项目名称
		createHddcA1LiteraturedocumenttableGrid();
	};
    var initcreateProvince = function () {
        var html = "";
        $("#citySelect").append(html);
        $("#areaSelect").append(html);
        $.ajax({
            url: getServer() + "/divisions/root/subdivisions",
            contentType: "application/json",
            type: "get",
            success: function (data) {
                $.each(data, function (idx, item) {
                    html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                });
                $("#provinceSelect").append(html);
            }
        });
        $("#provinceSelect").change(function () {
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#citySelect option").remove();
            $("#citySelect").append(html);
            $("#areaSelect option").remove();
            $("#areaSelect").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            if ($(this).val() == "北京市" || $(this).val() == "天津市" || $(this).val() == "上海市" || $(this).val() == "重庆市") {
                $("#citySelect").append("<option value='" + $(this).val() + "' exid='" + divisionId + "'>" + $(this).val() + "</option>");
                return;
            }
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#citySelect").append(html);
                }
            });
        });
        $("#citySelect").change(function () {
            if ($(this).val() == "") return;
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#areaSelect option").remove();
            $("#areaSelect").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#areaSelect").append(html);
                }
            });
        });
    }
    var initcreateProvinceForm = function () {
        var html = "";
        $("#city").append(html);
        $("#area").append(html);
        $.ajax({
            url: getServer() + "/divisions/root/subdivisions",
            contentType: "application/json",
            type: "get",
            success: function (data) {
                $.each(data, function (idx, item) {
                    html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                });
                $("#province").append(html);
            }
        });
        $("#province").change(function () {
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#city option").remove();
            $("#city").append(html);
            $("#area option").remove();
            $("#area").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            if ($(this).val() == "北京市" || $(this).val() == "天津市" || $(this).val() == "上海市" || $(this).val() == "重庆市") {
                $("#city").append("<option value='" + $(this).val() + "' exid='" + divisionId + "'>" + $(this).val() + "</option>");
                return;
            }
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#city").append(html);
                }
            });
        });
        $("#city").change(function () {
            if ($(this).val() == "") return;
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#area option").remove();
            $("#area").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#area").append(html);
                }
            });
        });
    }


    var editProvince = function (Province, City, Area) {
        debugger;
        var html = "";
        $("#city").append(html);
        $("#area").append(html);
        $.ajax({
            url: getServer() + "/divisions/root/subdivisions",
            contentType: "application/json",
            type: "get",
            success: function (data) {
                $.each(data, function (idx, item) {
                    if (item.divisionName == Province) {
                        debugger;
                        var divisionId = item.divisionId;
                        var htmlCity = '';
                        if (Province == "北京市" || Province == "天津市" || Province == "上海市" || Province == "重庆市") {
                            $("#city").append("<option value='" + Province + "' exid='" + divisionId + "'>" + Province + "</option>");
                            $('#city').val(City);
                            var htmlArea = '';
                            $.ajax({
                                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                                contentType: "application/json",
                                type: "get",
                                success: function (data) {
                                    $.each(data, function (idx, item) {
                                        htmlArea += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                                    });
                                    $("#area").append(htmlArea);
                                    $('#area').val(Area);
                                }
                            });

                        } else {
                            $.ajax({
                                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                                contentType: "application/json",
                                type: "get",
                                success: function (data) {
                                    debugger;
                                    $.each(data, function (idx, item) {
                                        if (item.divisionName == City) {
                                            var divisionId = item.divisionId;
                                            var htmlArea = '';
                                            $.ajax({
                                                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                                                contentType: "application/json",
                                                type: "get",
                                                success: function (data) {
                                                    $.each(data, function (idx, item) {
                                                        htmlArea += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                                                    });
                                                    $("#area").append(htmlArea);
                                                    $('#area').val(Area);
                                                }
                                            });
                                        }
                                        htmlCity += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                                    });
                                    $("#city").append(htmlCity);
                                    $('#city').val(City);
                                }
                            });
                        }
                    }
                    html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                });
                $("#province").append(html);
                $('#province').val(Province);
            }
        });
        $("#province").change(function () {
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#city option").remove();
            $("#city").append(html);
            $("#area option").remove();
            $("#area").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            if ($(this).val() == "北京市" || $(this).val() == "天津市" || $(this).val() == "上海市" || $(this).val() == "重庆市") {
                $("#city").append("<option value='" + $(this).val() + "' exid='" + divisionId + "'>" + $(this).val() + "</option>");
                return;
            }
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#city").append(html);
                }
            });
        });
        $("#city").change(function () {
            if ($(this).val() == "") return;
            var html = '<option value="" disabled selected style="display:none;">请选择</option>';
            $("#area option").remove();
            $("#area").append(html);
            var divisionId = $(this).find("option:selected").attr("exid");
            $.ajax({
                url: getServer() + "/divisions/" + divisionId + "/subdivisions",
                contentType: "application/json",
                type: "get",
                success: function (data) {
                    $.each(data, function (idx, item) {
                        html += "<option value='" + item.divisionName + "' exid='" + item.divisionId + "'>" + item.divisionName + "</option>";
                    });
                    $("#area").append(html);
                }
            });
        });
    }
    //质检状态下拉框赋值
    var initQualityinspectionStatusSelect = function () {
        $.ajax({
            url: getHddcA1LiteraturedocumenttableController() + "/getValidDictItemsByDictCode/" + "hddcQualityResult",
            type: "get",
            success: function (data) {
                var mySelect = document.getElementById("qualityinspectionStatusSelect");
                $("#qualityinspectionStatusSelect option").remove();
                mySelect.add(new Option("请选择", ''), 0);
                for (var i = 0; i < data.length; i++) {
                    var name = data[i].dictItemName;
                    var code = data[i].dictItemCode;
                    mySelect.add(new Option(name, code));
                }
            }
        });
    };
	var initSearchBlock = function(){
        SearchBlock.init("searchBlock");
	};
	var queryBtnBind = function(){
        $("#btnSearch").click(function () {
            createHddcA1LiteraturedocumenttableGrid();
        });
        $("#btnReset").click(function () {
            $("#provinceSelect").val("");$("#qualityinspectionStatusSelect").val("");
	            $("#citySelect").val("");
	            $("#areaSelect").val("");
				$("#projectNameCondition").val("");
				$("#publicationCondition").val("");
			});
	};
	var createHddcA1LiteraturedocumenttableGrid= function() {
        $("#hddcA1LiteraturedocumenttableGrid").datagrid({
            url:getHddcA1LiteraturedocumenttableController() + "/queryHddcA1Literaturedocumenttables",
			method:"GET",
            fitColumns: true,
            autoRowHeight: false,
            columns:[[
                {field:"ck",checkbox:true},
                {
                    field: 'id',sortable:true,
                    title: '文献编号',
                    width: '20%',
                    align: 'center',
                    formatter: function (value, rowData, rowIndex) {
                        return '<a href="#" onclick="_editHddcA1Literaturedocumenttable(\'' + rowData.uuid + '\');"> ' + rowData.id + ' </a> '
                    }
                },
				{
					field:'province',sortable:true,
					title:'省',
					width:'20%',
					align:'center',
				},
				{
					field:'city',sortable:true,
					title:'市',
					width:'20%',
					align:'center',
				},
				{
					field:'area',sortable:true,
					title:'区（县）',
					width:'20%',
					align:'center',
				},

                {
                    field:'literaturename',
                    title:'文献名称',
                    width:'20%',
                    align:'center',
                },
                {
                    field:'projectName',
                    title:'项目名称',
                    width:'20%',
                    align:'center',

                },
				{
					field:'publication',
					title:'刊物名称',
					width:'20%',
					align:'center',
				},
				{
					field:'taskName',
					title:'任务名称',
					width:'20%',
					align:'center',
				},
				{
					field:'literaturetype',
					title:'文献类型',
					width:'20%',
					align:'center',
				},
                {
                    field:'qualityinspectionStatus',
                    title:'质检状态',
                    width:'20%',
                    align:'center',
                    formatter:function(value,rowData,rowIndex){
                        if (rowData.qualityinspectionStatus == 1) {
                            return "系统质检通过";
                        }else if(rowData.qualityinspectionStatus == 2) {
                            return "<span style='color: red;'>系统质检未通过</span>";
                        }else if(rowData.qualityinspectionStatus == 3){
                            return "人工质检通过";
                        }else if(rowData.qualityinspectionStatus == 4){
                            return "<span style='color: red;'>人工质检未通过</span>";
                        }else{
                            return "未质检";
                        }
                    }
                },
                {
                    field:'createUser',
                    title:'上传人',
                    width:'20%',
                    align:'center'
                },
                {
                    field:'updateTime',
                    title:'上传时间',
                    width:'20%',
                    align:'center',
                },
            ]],
            toolbar: [{
                iconCls: 'fa fa-trash-o',
                text:"删除",
                handler: function(){
                    deleteHddcA1Literaturedocumenttable();
                }
            },  {
                iconCls: 'fa fa-download',
                text: "导出",
                handler: function () {
                    exportForm();
                }
            }],
            queryParams:{
                province: $("#provinceSelect").val(),
                city: $("#citySelect").val(),
                area: $("#areaSelect").val(),
				projectName: $("#projectNameCondition").val(),
				publication: $("#publicationCondition").val(),
                qualityinspectionStatus: $("#qualityinspectionStatusSelect").val(),
            },
            pagination: true,
            pageSize: 10
        });
    };
    //导入
    var importForm = function () {

        $("#uploadModal").modal();
        $("#uploadModal").on("shown.bs.modal", function () {
            var url = getServer() + "/excel/文献资料库.xls";
            $("#downloadZwExcelTemplate").attr("href", url);
        });

        $('#uploadButton').off("click");
        $("#uploadButton").on("click", function () {
            var uploadinput = document.getElementById("uploadFile");
            if (uploadinput.value == "") {
                Util.alert("上传前请先选择文件!");
                return;
            }
            var formData = new FormData();
            formData.append("file", uploadinput.files[0]);
            $.ajax({
                url: getHddcA1LiteraturedocumenttableController() + "/importDisaster",
                data: formData,
                processData: false, //因为data值是FormData对象，不需要对数据做处理。
                contentType: false,
                type: "POST",
                success: function (data) {
                    $('#uploadModal').modal('hide');
                    uploadinput.value = null;
                    Util.alert(data);
                    createHddcA1LiteraturedocumenttableGrid();
                }
            });
        });
    };
    //导出
    var exportForm = function () {
        var province = $("#provinceSelect").val();var qualityinspectionStatus = $("#qualityinspectionStatusSelect").val();
        var city = $("#citySelect").val();
        var area = $("#areaSelect").val();
        var projectName = $("#projectNameCondition").val();
        var publication= $("#publicationCondition").val();
        window.location.href = getHddcA1LiteraturedocumenttableController() + "/exportFile?province=" + province + "&qualityinspectionStatus=" + qualityinspectionStatus+"&city="+city+"&area="+area+"&projectName="+projectName+"&publication="+publication;
    };
    var formValidator = function(){
        // 人工审核不通过原因必填
        $("#auditForm").validate({
            rules : {
                reason : {
                    required : true,
                }
            },
            messages : {
            }
        });
        $("#hddcA1LiteraturedocumenttableForm").validate({
            rules : {
                extends4 : {
                    required : true,
                },
                province : {
                    required : true,
                },
                city : {
                    required : true,
                },
                area : {
                    required : true,
                },
                id: {
                    required: true,
                    rangelength:[17,17]
                },
                projectName : {
                    required : true,
                },
                taskName : {
                    required : true,
                },
                publication : {
                    required : true,
                },
                author : {
                    required : true,
                },
                publishdate : {
                    required : true,
                },
                rawdataArwid : {
                    required : true,
                },
                literaturetype : {
                    required : true,
                },
                literaturename : {
                    required : true,
                },
                publisher : {
                    required : true,
                },
                authorinstitute : {
                    required : true,
                },
            },
            messages : {
                province : {
                    required : "省不允许为空!",
                },
                city : {
                    required : "市不允许为空!",
                },
                area : {
                    required : "区（县）不允许为空!",
                },
                id: {
                    required: "编号不允许为空!",
                    rangelength:"长度为17位!"
                },
                projectName : {
                    required : "项目名称不允许为空!",
                },
                taskName : {
                    required : "任务名称不允许为空!",
                },
                publication : {
                    required : "刊物名称不允许为空!",
                },
                author : {
                    required : "作者不允许为空!",
                },
                publishdate : {
                    required : "出版日期不允许为空!",
                },
                rawdataArwid : {
                    required : "原始资料编号不允许为空!",
                },
                literaturetype : {
                    required : "文献类型不允许为空!",
                },
                literaturename : {
                    required : "文献名称不允许为空!",
                },
                publisher : {
                    required : "出版单位不允许为空!",
                },
                authorinstitute : {
                    required : "第一作者单位不允许为空!",
                },
            }
        });
    };
	var getHddcA1Literaturedocumenttable = function(id){
		$.ajax({
			url: getHddcA1LiteraturedocumenttableController() + "/"+id,
			type: "get",
			success: function (data) {
                editProvince(data.province, data.city, data.area);
                // 回显附件
                HddccjCommon.viewFileUpload(data.extends8);
                // 回显项目名称
                // $("#projectName").val(data.projectName);
                // 回显任务名称
                HddccjCommon.initEditTaskSelect("taskName",data.projectName);
                if(data.qualityinspectionStatus == "3" && data.extends10 == "2"){$(".qualityControlBox").css("display","none");}
				Tool.deserialize("hddcA1LiteraturedocumenttableForm", data);
                if(data.qualityinspectionStatus == '2' || data.qualityinspectionStatus == '4') {
                    $('#failReason').css('display','block')
                    // 质检不通过原因
                    var text = '';var num = 0;
                    if(data.qualityinspectionComments!=null && data.qualityinspectionComments!="") text=text+ ++num+'、'+data.qualityinspectionComments+'\n';
                    if(data.extends1!=null && data.extends1!="") text=text+ ++num+'、'+data.extends1+'\n';
                    if(data.extends2!=null && data.extends2!="") text=text+ ++num+'、'+data.extends2+'\n';
                    if(data.extends3!=null && data.extends3!="") text=text+ ++num+'、'+data.extends3+'\n';
                    Tool.deserialize("auditForm", {reason: text});
                }
			}
		});
	};

	var addHddcA1Literaturedocumenttable = function () {
		var slidebar = Util.slidebar({
			url: hddcA1LiteraturedocumenttableFormHtml,
			width: "800px",
			cache: false,
			close : true,
			afterLoad: function () {
                initcreateProvinceForm();
				formValidator();
                HddccjCommon.initProjectSelect("projectName"); //添加页面项目名称下拉
                HddccjCommon.initTaskSelect("projectName", "taskName"); //添加页面任务名称根据项目名称切换
				$("#saveBtn").on("click", function () {
					if($("#hddcA1LiteraturedocumenttableForm").valid()){
						var data = Tool.serialize("hddcA1LiteraturedocumenttableForm");
                        // 保存项目任务id
                        data.projectId = $("#projectName").val();
                        data.taskId = $("#taskName").val();
						$.ajax({
							url: getHddcA1LiteraturedocumenttableController() ,
                            contentType:"application/json",
							data: JSON.stringify(data),
							type: "post",
							success: function (data) {
								Util.alert(data.message);
								slidebar.close();
                                createHddcA1LiteraturedocumenttableGrid();
							}
						});
					}
				});
			}
		});
	};
    var initDatetimePicker = function () {
        $("#publishdate").datetimepicker({
            //设置使用语言：cn是自定义的中文版本，还可以扩展其他语言版本
            language: "cn",
            //输出格式化
            format: 'yyyy-mm-dd',
            //直接选择‘今天’
            todayBtn: true,
            //设置最精确的时间选择视图
            minView: 'month',
            //高亮当天日期
            todayHighlight: true,
            //选择完毕后自动关闭
            autoclose: true
        });
    }
	window._editHddcA1Literaturedocumenttable = function(hddcA1LiteraturedocumenttableId) {
		var slidebar = Util.slidebar({
			url: hddcA1LiteraturedocumenttableFormHtml,
			width: "800px",
			cache: false,
			close : true,
			afterLoad: function () {
				formValidator();
                initDatetimePicker();
                HddccjCommon.initProjectSelect("projectName"); HddccjCommon.tipsInfo(); //编辑页面项目名称下拉
                HddccjCommon.initTaskSelect("projectName","taskName"); //编辑页面任务名称根据项目名称切换
				getHddcA1Literaturedocumenttable(hddcA1LiteraturedocumenttableId);
                $("#saveBtn").on("click", function () {
                    if($("#hddcA1LiteraturedocumenttableForm").valid()){
                        var data = Tool.serialize("hddcA1LiteraturedocumenttableForm");
                        data.qualityinspectionStatus = 0; // 质检保存
                        // 保存项目任务id
                        data.projectId = $("#projectName").val();
                        data.taskId = $("#taskName").val();
                        $.ajax({
                            url: getHddcA1LiteraturedocumenttableController()+"/update" ,
                            contentType:"application/json",
                            data: JSON.stringify(data),
                            type: "post",
                            success: function (data) {
                                Util.alert(data.message);
                                slidebar.close();
                                createHddcA1LiteraturedocumenttableGrid();
                            }
                        });
                    }
                });
                // 审核通过
                $("#approved").on("click", function () {
                    if ($("#hddcA1LiteraturedocumenttableForm").valid()) {
                        var data = Tool.serialize("hddcA1LiteraturedocumenttableForm");
                        data.qualityinspectionStatus = "3";data.extends10 = "2";
                        //
                        $.ajax({
                            url: getHddcA1LiteraturedocumenttableController()+"/update",
                            contentType: "application/json",
                            data: JSON.stringify(data),
                            type: "post",
                            success: function (data) {
                                Util.alert("质检成功！");
                                slidebar.close();
                                createHddcA1LiteraturedocumenttableGrid()
                            }
                        });
                    }
                });
// 审核不通过
                $("#unapproved").on("click", function () {
                    if ($("#hddcA1LiteraturedocumenttableForm").valid()) {
                        if ($('#failReason').css('display') == 'none') {
                            $('#failReason').css('display', 'block')
                        } else {
                            var data = Tool.serialize("hddcA1LiteraturedocumenttableForm");
                            data.qualityinspectionComments = $('#reason').val();
                            data.qualityinspectionStatus = "4";data.extends10 = "1";data.extends1 = "";data.extends2 = "";data.extends3 = "";
                            if ($("#auditForm").valid()) {
                                $.ajax({
                                    url: getHddcA1LiteraturedocumenttableController()+"/update",
                                    contentType: "application/json",
                                    data: JSON.stringify(data),
                                    type: "post",
                                    success: function (data) {
                                        Util.alert(data.message);
                                        slidebar.close();
                                        createHddcA1LiteraturedocumenttableGrid()
                                        $('#failReason').css('display', 'none')
                                    }
                                });
                            }
                        }
                    }
                });
			}
		});
	};
	var deleteHddcA1Literaturedocumenttable = function() {
		var rows = $("#hddcA1LiteraturedocumenttableGrid").datagrid("getSelections");
		if (rows == null || rows.length == 0) {
			Util.alert("请选择一行数据!");
			return;
		}
		Util.confirm("是否要删除选中的数据?", function() {
			var ids = "";
			$.each(rows, function(i, row){
				ids += row.uuid + ",";

			});
			ids = ids.substr(0,ids.length - 1);
			$.ajax({
				url: getHddcA1LiteraturedocumenttableController() +"/delete",
                contentType:"application/json",
                data: ids,
				type: "post",
				success: function (data) {
					createHddcA1LiteraturedocumenttableGrid();
				}
			});
		}, function() {
			return;
		});

	};

	return {
		init:init
	};
});
